When users have access to a communication network, then applications for conducting electronic commerce transactions such as banking, shopping, and gambling can be implemented securely in a straightforward manner. This is because the resources that need protection, namely money, can be secured by cryptographic means in the network. There are many protocols for conducting secure transactions on the Internet, such as the Secure Sockets Layer (SSL) which permits electronic commerce by providing an encryption layer between the application/browser layer and the Internet's TCP/IP layer. (See Kipp E. B. Hickman and Taher Eigamal, The SSL Protocol, Internet draft draft-hickman-netscape-ssl-01.txt, 1995). Secure protocols are already implemented on many mobile devices. Hall et al. have presented protocols for remote electronic gambling for online users. (See Chris Hall and Bruce Schneier, “Remote Electronic Gambling,” 13th Annual Computer Security Applications Conference, pages 227-30. December 1997).
There are, however, many occasions when a user is in possession of a small computing device, but is not in communication with the network. There is currently a proliferation of lightweight handheld devices, such as the 3Com Palm Pilot, Windows CE devices, and even laptops that weigh under three pounds. Many of these devices are so portable that people can carry them in their pockets and use them at all times—while in a vehicle traveling, while in a public place, standing in line at a grocery store, sitting at a doctor's office, etc. In such scenarios, it is difficult to allow the user to perform financial transactions because interaction with servers is difficult or not possible. Moreover, it is assumed that the user has full access to the device, so secrets (such as cryptographic keys) cannot be safely stored on it. Accordingly, the prior art does not enable a user to securely conduct electronic transactions on an untrusted remote electronic device.